#include <iostream>
#include <algorithm>
using namespace std;

int ans[110][110];
int mytower[110][110];

int main()
{
    int mmmmm, nnwndd; //mmmmm用来存储需要输入的树塔的量
    cin >> mmmmm;
    for (int kol = 0; kol < mmmmm; kol++) //for循环输入nnwndd个树塔的值
    {
        cin >> nnwndd; //nnwndd用来存储树塔层数
        for (int i = 0; i < nnwndd; i++)
        {
            for (int j = 0; j <= i; j++)
            {
                cin >> mytower[i][j];
            }
        }

        for (int i = nnwndd - 2; i >= 0; i--)
        {
            for (int j = 0; j <= i; j++)
            {
                mytower[i][j] = max(mytower[i + 1][j], mytower[i + 1][j + 1]) + mytower[i][j]; //从倒数第二层，自底向上计算，每一层的节点的数据为下一层左右节点中的最大值，加上此节点数据
            }
        }
        cout << mytower[0][0] << endl;
    }

    return 0;
}